# 编译器
CC = gcc

# 编译选项
CFLAGS = -Wall -Wextra -g

# 目标可执行文件
TARGET = my_program

# 源文件和对象文件
SRCS = main.c my_stdio.c
OBJS = $(SRCS:.c=.o)

# 默认目标
all: $(TARGET)

# 链接目标
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $^

# 编译规则
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理
clean:
	rm -f $(OBJS) $(TARGET)

.PHONY: all clean